Previous topicNext topic
Help > Keyword Reference >
STATIC statement

Purpose

Declare static variables inside a Sub, Function, Method, or Property. Static variables retain their values as long as the program is running.

Syntax

STATIC variable[()] [AS type] [, variable[()]]

STATIC variable[()] [, variable[()]] [, ...] AS type

Remarks

The STATIC statement is valid only inside a procedure. Static variables retain their values even after the procedure ends. A static variable is local to its procedure, and can have the same name as other variables in other parts of the program without conflict.

To declare an array as a static variable, use an empty set of parentheses in the variable list: You can then use the DIM statement to dimension the array.

STATIC MyArray%()

STATIC StringArray() AS STRING

The STATIC statement may, optionally, accept a list of variables, all of which are defined by the type descriptor keyword that follows them. For example:

STATIC aaa, bbb, ccc AS INTEGER

STATIC vptr, aptr() AS LONG PTR

Restrictions

DEFtype has no effect on variables defined by a STATIC statement.

See also

DIM, GLOBAL, LOCAL, THREADED

Example

#COMPILE EXE

#DIM ALL

#INCLUDE "WIN32API.INC"

 

DECLARE SUB DoMessage ()

 

FUNCTION PBMAIN

 DIM z%

 FOR z% = 1 TO 5

   DoMessage

 NEXT z%

END FUNCTION

 

SUB DoMessage ()

 STATIC x AS INTEGER

 STATIC Message() AS ASCIIZ * 256

 DIM Message(1 TO 5) AS STATIC ASCIIZ * 256

 

 INCR x       'add one to x

 Message(x) = "X =" + STR$(x)

 

 #IF %DEF(%PB_CC32)

   PRINT Message(x)

 #ELSE

   MSGBOX Message(x)

 #ENDIF

END SUB